package graph;

import java.util.Enumeration;
import java.util.Vector;

import org.jfree.chart.*;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.xy.*;

public class Grafo{
	public Grafo() {}
	
	@SuppressWarnings("unchecked")
	public void creaGrafo(String nomeFile, Vector<DatiJGraph> datiGrafo, int maxConnessioni, double tempoMax) {
		// Grafo Fisso Programma
		XYSeries series = new XYSeries("Grafo - Dati Inviati");
		series.add(0,0);
		Enumeration enum1 = datiGrafo.elements();
		while (enum1.hasMoreElements()) {
			DatiJGraph djg = (DatiJGraph) enum1.nextElement();
			int tempo = djg.getTempo();
			int numeroConnessioni = djg.getNumeroConnessioni();
			series.add(tempo, numeroConnessioni);
		}
		
		XYSeriesCollection seriesCollection = new XYSeriesCollection();
		seriesCollection.addSeries(series);

		/*
		// Grafo Ideale Programma
		XYSeries seriesIdeale = new XYSeries("Grafo Ideale - Dati Inviati");
		Function function = new Function((int) tempoMax, maxConnessioni);
		int y = 0;
		int tM = (int) (tempoMax + 1);
		while (y < tM) {
			int numConnessioni = function.getFunction(y);
			seriesIdeale.add(y, numConnessioni);
			y++;
		}
		seriesCollection.addSeries(seriesIdeale);
		*/
		
		XYDataset xyDataset = seriesCollection;
		JFreeChart chart = ChartFactory.createXYAreaChart
	          ("Download " + nomeFile, "Tempo", "Numero Connessioni", xyDataset,
	        		  PlotOrientation.VERTICAL, true, true, false);
		ChartFrame frame1 = new ChartFrame("Grafo Andamento Download P2P del file " + nomeFile, chart);
		frame1.setVisible(true);
		frame1.setSize(700, 700);
	}
}
